﻿/*************************************************
  * 描述：下拉菜单按钮
  *
  * File：cxidropdownbutton.h
  * Author：gaomaolong@mozihealthcare.cn
  * Date：2025-10-01
  * Update：
  * ************************************************/
#ifndef CXIDROPDOWNBUTTON_H
#define CXIDROPDOWNBUTTON_H
#include <QToolButton>
#include <controls/export.h>

class CxiDropDownButtonPrivate;

class CXI_CONTROLS_EXPORT CxiDropDownButton : public QToolButton
{
	Q_OBJECT
public:
	explicit CxiDropDownButton(QWidget* parent = nullptr);

	~CxiDropDownButton() override;

	/**
	 *
	 * @param text 文本信息
	 * @param icon 图标
	 * @param callback 回调函数
	 * @param index 插入的索引位置
	 */
	void addItem(const QString& text,
				 const QIcon& icon = QIcon(),
				 std::function<void()> callback = nullptr,
				 int index = -1);

	/**
	 * 添加项
	 * @param action 具体的action动作
	 * @param index 插入位置的索引
	 */
	void addItem(QAction* action, int index = -1);

	/**
	 * 添加分隔符
	 * @param index 插入位置的索引
	 */
	void addSeparator(int index = -1);

private:
	Q_DECLARE_PRIVATE(CxiDropDownButton)
	QScopedPointer<CxiDropDownButtonPrivate> d_ptr;
};


#endif//CXIDROPDOWNBUTTON_H
